package com.warm.orm.eq.gen.agent;


import com.easy.query.solon.annotation.Db;
import com.warm.core.page.TableDataInfo;
import com.warm.gen.api.orm.agent.GenTableAgent;
import com.warm.orm.utils.PageUtils;
import com.warm.orm.domain.gen.GenTable;
import com.warm.orm.eq.gen.mapper.GenTableMapper;
import org.noear.solon.annotation.Component;
import org.noear.solon.annotation.Inject;

import java.util.List;

/**
 * 业务 数据层 orm代理类
 *
 * @author warm
 */
@Component
public class GenTableAgentImpl implements GenTableAgent {

    @Inject
    private GenTableMapper genTableMapper;

    /**
     * 批量删除业务
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteGenTableByIds(Long[] ids) {
        return this.genTableMapper.deleteGenTableByIds(ids);
    }

    /**
     * 新增业务
     *
     * @param genTable 业务信息
     * @return 结果
     */
    @Override
    public int insertGenTable(GenTable genTable) {
        return this.genTableMapper.insertGenTable(genTable);
    }

    /**
     * 查询据库列表
     *
     * @param genTable 业务信息
     * @return 数据库表集合
     */
    @Override
    public TableDataInfo<GenTable> selectDbTableList(GenTable genTable) {
        PageUtils.startPage();
        List<GenTable> list = this.genTableMapper.selectGenTableList(genTable);
        return PageUtils.getDataTable(list);
    }

    /**
     * 查询据库列表
     *
     * @param tableNames 表名称组
     * @return 数据库表集合
     */
    @Override
    public List<GenTable> selectDbTableListByNames(String[] tableNames) {
        return this.genTableMapper.selectDbTableListByNames(tableNames);
    }

    /**
     * 查询所有表信息
     *
     * @return 表信息集合
     */
    @Override
    public List<GenTable> selectGenTableAll() {
        return this.genTableMapper.selectGenTableAll();
    }

    /**
     * 查询表ID业务信息
     *
     * @param id 业务ID
     * @return 业务信息
     */
    @Override
    public GenTable selectGenTableById(Long id) {
        return this.genTableMapper.selectGenTableById(id);
    }

    /**
     * 查询表名称业务信息
     *
     * @param tableName 表名称
     * @return 业务信息
     */
    @Override
    public GenTable selectGenTableByName(String tableName) {
        return this.genTableMapper.selectGenTableByName(tableName);
    }

    /**
     * 查询业务列表
     *
     * @param genTable 业务信息
     * @return 业务集合
     */
    @Override
    public List<GenTable> selectGenTableList(GenTable genTable) {
        return this.genTableMapper.selectGenTableList(genTable);
    }

    /**
     * 查询业务列表
     *
     * @param genTable 业务信息
     * @return 业务集合
     */
    @Override
    public TableDataInfo<GenTable> selectGenTablePage(GenTable genTable) {
        PageUtils.startPage();
        List<GenTable> list = this.genTableMapper.selectGenTableList(genTable);
        return PageUtils.getDataTable(list);
    }

    /**
     * 修改业务
     *
     * @param genTable 业务信息
     * @return 结果
     */
    @Override
    public int updateGenTable(GenTable genTable) {
        return this.genTableMapper.updateGenTable(genTable);
    }
}
